class Solution {  
public:  
    vector<int> twoSum(vector<int>& nums, int target) {  
        unordered_map<int, int> numMap; // 创建一个哈希表来存储数字及其索引  
        vector<int> result;  
          
        for (int i = 0; i < nums.size(); i++) {  
            int complement = target - nums[i]; // 计算当前元素的补数  
            if (numMap.count(complement)) { // 如果补数已经在哈希表中，说明找到了答案  
                result.push_back(numMap[complement]); // 将补数的索引加入结果  
                result.push_back(i); // 将当前元素的索引加入结果  
                return result;  
            }  
            numMap[nums[i]] = i; // 将当前元素的索引加入哈希表  
        }  
          
        return result; // 如果没有找到答案，返回空列表  
    }  
};